package com.example.bomc.service.queryService.impl;

import com.example.bomc.common.msg.CodeMsg;
import com.example.bomc.controller.LoginController;
import com.example.bomc.dao.QueryDAO;
import com.example.bomc.model.Query;
import com.example.bomc.service.queryService.QueryService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

@Service
public class QueryServiceImpl  implements QueryService {

    private static final Logger logger = LoggerFactory.getLogger(LoginController.class);
    @Autowired
    QueryDAO queryDAO;
    @Override
    public CodeMsg addQuery(Query query) {
        CodeMsg msg = new CodeMsg();
        if(query.getChoose().isEmpty()){
            msg.setMessage(query.getChoose()+"为空！！！");
            msg.setRetCode(1001);
            return msg;
        }
        if (query.getTrouble().isEmpty() ){
            msg.setMessage(query.getTrouble()+"为空！！！");
            msg.setRetCode(1001);
            return msg;
        }

        if (query.getUser().isEmpty()){
            msg.setMessage(query.getUser()+"为空！！！");
            msg.setRetCode(1001);
            return msg;
        }

        if (!queryDAO.selSameQuery(query.getTrouble(),query.getUser()).isEmpty()){
            msg.setMessage("提交问题重复！！！");
            msg.setRetCode(1001);
            return msg;
        }
        /*
        * 1 ---> 提交问题
        * 2 ---> 撤销
        * 3 ---> 删除
        * */
        query.setTag(1);
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        query.setTime(sdf.format(new Date()));
        queryDAO.addQuery(query);
        msg.setMessage("提交问题成功～～～");
        msg.setRetCode(0);
        return msg;
    }

    @Override
    public CodeMsg selQuery(String trouble) {
        CodeMsg msg = new CodeMsg();
        if (trouble.isEmpty()){
            msg.setMessage("trouble为空！！！");
            msg.setRetCode(1001);
            return msg;
        }
        List<Query> list = new ArrayList<Query>();
        list = queryDAO.selQuery(trouble);
        if (list.isEmpty()){
            msg.setMessage("查询结果为空！！！");
            msg.setRetCode(1);
            return msg;
        }
        msg.setRetCode(0);
        msg.setMessage("查询成功");
        msg.setList(list);
        return msg;
    }

    @Override
    public CodeMsg selHistory(String user) {
        CodeMsg msg = new CodeMsg();
        if (user.isEmpty()){
            msg.setMessage("user为空！！！");
            msg.setRetCode(1001);
            return msg;
        }
        List<Query> list = new ArrayList<Query>();
        list = queryDAO.selHistory(user);
        if (list.isEmpty()){
            msg.setMessage("历史记录为空！！！");
            msg.setRetCode(1);
            return msg;
        }
        msg.setRetCode(0);
        msg.setMessage("查询成功");
        msg.setList(list);
        return msg;
    }

    @Override
    public CodeMsg addassess(String trouble, String user, String assess) {
        logger.info("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
        CodeMsg msg = new CodeMsg();
        if (trouble.isEmpty()){
            msg.setMessage("trouble为空！！！");
            msg.setRetCode(1001);
            return msg;
        }
        if (user.isEmpty()){
            msg.setMessage("user为空！！！");
            msg.setRetCode(1001);
            return msg;
        }
        if (assess.isEmpty()){
            msg.setMessage("assess为空！！！");
            msg.setRetCode(1001);
            return msg;
        }
        Query query = queryDAO.selectIdByTroubleAndUser(trouble,user);
        queryDAO.addAssess(assess, query.getId());
        msg.setRetCode(0);
        msg.setMessage("反馈成功");
        return msg;
    }
}
